Efficient Runtime Thread Management for the Nano-Threads Programming Model
نویسندگان
چکیده
The nano-threads programming model was proposed to effectively integrate multiprogramming on shared-memory multiprocessors, with the exploitation of fine-grain parallelism from standard applications. A prerequisite for the applicability of the nano-threads programming model is the ability of the runtime environment to manage parallelism at any level of granularity with minimal overheads. In this paper, we introduce runtime techniques for efficient memory management and user-level scheduling in an experimental runtime system designed to support the nano-threads programming model. We evaluate the exploitation of processor affinity for the management of nano-thread contexts, and the use of hierarchical queues to implement user-level scheduling strategies for applications with inherent multilevel parallelism. The proposed mechanisms attempt to obtain maximum benefits from data locality on cache-coherent NUMA multiprocessors. Through the use of synthetic benchmarks, we find that our mechanism for memory management in the runtime system reduces overheads by 52% on average, compared to other known mechanisms. The use of hierarchical queues gives significant performance improvements between 17% and 40%, compared to scheduling strategies that use local queues.
منابع مشابه
Nano-Threads Library Design, Implementation and Evaluation
In this report we describe the design and implementation of a user-level thread package based on the nano-threads programming model, whose goal is to efficiently manage the application parallelism at user-level. Some modifications introduced to the model have enhanced its flexibility and have allowed more runtime parallelism. It is a current trend in compiler technology to apply data and contro...
متن کاملA Time and Memory Efficient Implementation of the Nano-Threads Programming Model
As more means to exploit parallelism are incorporated into modern processors and more programmers are exposed to them, thread-based parallel programming models gain popularity. However, this increasing interest poses new challenges to those models. They are required to efficiently support a growing range of parallelization methods on diverge systems, with an ever increasing number of threads. U...
متن کاملA Library Implementation of the Nano-Threads Programming Model
In this paper we describe the design and implementation of a user-level thread package based on the nano-threads programming model, whose goal is to efficiently manage the application parallelism at user-level. Nano-thread applications work close to the operating system to quickly adapt to resource availability. The goal is to obtain an efficient parallel execution of the nanothreads by appropr...
متن کاملA Survey on Hardware and Software Support for Thread Level Parallelism
To support growing massive parallelism, functional components and also the capabilities of current processors are changing and continue to do so. Todays computers are built upon multiple processing cores and run applications consisting of a large number of threads, making runtime thread management a complex process. Further, each core can support multiple, concurrent thread execution. Hence, ha...
متن کاملThreading by Appointment
We propose a concurrent programming model called threading-by-appointment (TAP). Unlike traditional threads, TAP threads can only communicate with system components or other threads by appointment. For example, a TAP thread cannot simply try to access some shared resource. Instead, a TAP thread must make an appointment with the shared resource in advance. Only at the time of the appointment, th...
متن کامل